package name.cyrax.red.jpv.api.adapters;

public interface NumericAccessor<T>
{
	public T asInteger(final IntegerAdapter adapter);
	public T asLong(final LongAdapter adapter);
	public T asDouble(final DoubleAdapter adapter);

	public static final NumericAccessor<NumericAdapter> GET_ADAPTER = new NumericAccessor<NumericAdapter>() {

		@Override public NumericAdapter asInteger(IntegerAdapter adapter)
		{
			return adapter;
		}

		@Override public NumericAdapter asLong(LongAdapter adapter)
		{
			return adapter;
		}

		@Override public NumericAdapter asDouble(DoubleAdapter adapter)
		{
			return adapter;
		}
	};
}
